<?php
/*
 * Padres asociados a un paciente y enfermedades.
 * @Autor: Andrés Ubilla.
 */
class Editar extends TPage{
    
    public function onLoad($param){
        parent::onLoad($param);
        if(!$this->IsPostBack){
            $this->cargarInterfaz();
        }
    }
    
    private function cargarInterfaz(){
        $this->validarSession(); 
        $oPadre = $this->obtenerPadres();
        $this->iniciarControles($oPadre);
    }
    
    private function validarSession(){
        $oUsuario = Util::getSession("Usuario");
        if(Util::isNullOrEmpty($oUsuario)){
            $this->Response->redirect($this->Service->constructUrl("Home"));
        }
    }        
    
    private function obtenerPadres(){
        $idPadre = Util::isNull($this->Request["idPadre"], "-1");
        
        if($idPadre != "-1"){
            try{        
                $oPadre = new Padres();
                $oPadresBLL = new PadresBLL();
                $oPadre = $oPadresBLL->obtenerPorId($idPadre);                                
                
                return $oPadre;                                             
            }catch(Exception $e){
                throw new Exception($e->getMessage());
            }
        }
    }
    
    private function iniciarControles($oPadre){
        $this->txtNombre->Attributes->Add("required","required");
        $this->ddlTipo->Attributes->Add("required","required");
        
        if($oPadre != null){
            try{
                $oPaciente = new Paciente();        

                if($oPadre->getIdPaciente() != "-1"){
                    $oPacienteBLL = new PacienteBLL();
                    $oPaciente = $oPacienteBLL->obtenerPorId($oPadre->getIdPaciente());
                    
                    $this->idPaciente->Value = $oPaciente->getId();
                    $this->imgPaciente->ImageUrl = $oPaciente->getImagen();
                    $this->litNombrePaciente->Text = $oPaciente->getNombre() ." ". $oPaciente->getApellido();
                    $this->txtNombre->Text = $oPadre->getNombre();
                    $this->ddlTipo->SelectedValue = $oPadre->getTipo();
                }                
            }catch(Exception $e){
                throw new Exception($e->getMessage());
            }
        }       
    }
    
    public function btnEditarPadreOnClick($sender, $param){
        $idPadre = Util::isNull($this->Request["idPadre"], "-1");
        
        if($idPadre != "-1"){
            try{
                $idPaciente = $this->idPaciente->Value;
                $oPadres = new Padres();
                $oPadres->setId($idPadre);
                $oPadres->setNombre($this->txtNombre->Text);
                $oPadres->setTipo($this->ddlTipo->SelectedValue);
                $oPadres->setIdPaciente($idPaciente);
                $oPadres->setEstado(1);

                $oPadresBLL = new PadresBLL();
                $idPadre = $oPadresBLL->editar($oPadres);
                
                Util::setSession("Mensaje", $this->litAlert->Text = Util::setMensajeUsuario("Familiar editado exitosamente.", Util::MENSAJE_OK));
                $this->Response->redirect("index.php?page=Padres.Listar&idPaciente=".$idPaciente);
                
                $this->limpiarForm();
                
            }catch(Exception $e){
                throw new Exception($e->getMessage());
            }
        }
    }
    
    private function limpiarForm(){
        $this->txtNombre->Text = "";
        $this->ddlTipo->SelectedValue = "";
    }       
}
?>
